#include <iostream>
#include <vector>
#include <queue>
using namespace std;

//class Solution {
//public:
//    int countStudents(vector<int>& students, vector<int>& sandwiches) {
//        int count[2] = { 0 };
//        for (int i = 0; i < students.size(); i++) count[students[i]]++;
//        int i;
//        for (i = 0; i < sandwiches.size(); i++)
//        {
//            if (count[sandwiches[i]] == 0)
//            {
//                return sandwiches.size() - i;
//            }
//            count[sandwiches[i]]--;
//        }
//        return i == students.size() ? 0 : students.size();
//    }
//};

//class LRUCache {
//public:
//    int size;
//    unordered_map<int, list<pair<int, int>>::iterator> hash;
//    list<pair<int, int>> lt;
//    LRUCache(int capacity) {
//        size = capacity;
//        hash.reserve(size);
//    }
//
//    int get(int key) {
//        if (hash.find(key) == hash.end()) return -1;
//        auto it = hash[key];
//        lt.splice(lt.begin(), lt, it);
//        return it->second;
//    }
//
//    void put(int key, int value) {
//        if (hash.find(key) != hash.end())
//        {
//            auto it = hash[key];
//            lt.splice(lt.begin(), lt, it);
//            it->second = value;
//        }
//        else
//        {
//            if (size == lt.size())
//            {
//                hash.erase(lt.back().first);
//                lt.pop_back();
//            }
//            lt.push_front({ key, value });
//            hash[key] = lt.begin();
//        }
//    }
//};

